package com.stefanini.pe.bbva.bp.in.dao.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.stefanini.pe.bbva.bp.in.dao.iface.ClientesEspecialesDAOIface;
import com.stefanini.pe.bbva.bp.in.to.ClienteEspecial;
import com.stefanini.pe.bbva.bp.in.to.UsuarioAsesor;

import java.util.Map;

import javax.faces.event.ActionEvent;

@Repository
public class ClientesEspecialesDAOImpl extends SqlMapClientDaoSupport implements ClientesEspecialesDAOIface {

	@Autowired
	public ClientesEspecialesDAOImpl(SqlMapClient sqlMapClient) {
		super.setSqlMapClient(sqlMapClient);
	}
		
	@SuppressWarnings("unchecked")
	public List<ClienteEspecial> buscarClientesEspeciales(
			String codCriterioBusqueda, String valorCriterioBusqueda,
			String valorUsuarioAsesor) throws Exception{
		Map<String,Object> param=new HashMap<String, Object>();
		param.put("in_criterio", codCriterioBusqueda);
		param.put("in_valorcriterio", valorCriterioBusqueda);
		param.put("in_valorua", valorUsuarioAsesor);		
		getSqlMapClientTemplate().queryForList("BP_CLIENTE_SqlMap.listarClientesEspeciales",param);			
		return (List<ClienteEspecial>)param.get("out_result");
	}
	
	public void guardarClienteEspecial(ClienteEspecial cliente) throws Exception{
		getSqlMapClientTemplate().queryForList("BP_CLIENTE_SqlMap.guardarClienteEspecial",cliente);		
	}
	
	public void eliminarClienteEspecial(String codCliente) throws Exception{
		Map<String,String> param=new HashMap<String, String>();
		param.put("in_codcliente", codCliente);
		getSqlMapClientTemplate().queryForList("BP_CLIENTE_SqlMap.eliminarClienteEspecial",param);
	}
	
	public void autorizarCliente(String codCliente) throws Exception{
		Map<String,String> param=new HashMap<String, String>();
		param.put("in_codcliente", codCliente);
		getSqlMapClientTemplate().queryForList("BP_CLIENTE_SqlMap.autorizarClienteEspecial",param);
	}
	
	public Map<String,Object> alertaAutorizacionCle(String idusuarioasesor) throws Exception{
		Map<String,Object> paramIn = new HashMap<String, Object>();
		Map<String,Object> paramOut = new HashMap<String, Object>();		
		paramIn.put("in_idusuarioasesor", idusuarioasesor);		
		getSqlMapClientTemplate().queryForList("BP_CLIENTE_SqlMap.consAutorizadoresAI",paramIn);
		
		paramOut.put("oListaUsuarioAsesoresEnvio", (List<UsuarioAsesor>)paramIn.get("out_result_set1"));
		paramOut.put("oListaClientes", (List<ClienteEspecial>)paramIn.get("out_result_set2"));
		
		return paramOut;
	}
	
	
}
